View Javadoc

1   /**
2    * Copyright 2008 WebPhotos
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *      http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package net.sf.webphotos.action;
17  
18  import java.awt.event.ActionEvent;
19  import javax.swing.AbstractAction;
20  import javax.swing.JComboBox;
21  import javax.swing.JTable;
22  import javax.swing.JTextArea;
23  import net.sf.webphotos.Album;
24  import net.sf.webphotos.PhotoDTO;
25  import net.sf.webphotos.gui.util.TableModelFoto;
26  import net.sf.webphotos.util.Util;
27  
28  /**
29   * Atualiza legenda. Seu construtor seta todas as variáveis da classe exceto o
30   * índice da foto. No método que implementa a ação, o índice é setado através
31   * dos valores da seleção obtidos no programa e a partir da posição é encontrada
32   * a foto e feita a atualização da legenda.
33   */
34  public class AcaoAtualizaLegenda extends AbstractAction {
35  
36      /**
37       *
38       */
39      private static final long serialVersionUID = 3926799612502941998L;
40      private JTable tbFotos;
41      private JTextArea txtLegenda;
42      private int indiceFoto;
43      private JComboBox lstCreditos;
44  
45      /**
46       * Construtor da classe. Recebe três parâmetros, uma tabela de fotos, um
47       * texto de legenda e uma lista de créditos. Seta esses 3 valores para
48       * variáveis da classe para posteriormente manipulá-las.
49       *
50       * @param tabela Tabela de fotos.
51       * @param legenda Texto de legenda.
52       * @param creditos Lista de créditos.
53       */
54      public AcaoAtualizaLegenda(JTable tabela, JTextArea legenda, JComboBox creditos) {
55          tbFotos = tabela;
56          txtLegenda = legenda;
57          lstCreditos = creditos;
58      }
59  
60      /**
61       * Método responsável pela ação de atualização da legenda. Faz uma busca
62       * pelo índice da foto e seta a variável fID. Logo após, instancia um objeto
63       * PhotoDTO e indica a foto para atualização através de fID. Seta o valor da
64       * legenda da foto, pelo valor armazenado em txtLegenda e ao final atualiza
65       * os valores.
66       *
67       * @param e Evento de ação de atualização de legenda.
68       */
69      @Override
70      public void actionPerformed(ActionEvent e) {
71          Util.out.println("indiceFoto:" + indiceFoto);
72          int fID = Integer.parseInt(tbFotos.getModel().getValueAt(tbFotos.getSelectedRow(), 0).toString());
73          PhotoDTO f = Album.getAlbum().getFoto(fID);
74          f.setLegenda(txtLegenda.getText());
75          TableModelFoto.getModel().update();
76          TableModelFoto.getModel().fireTableCellUpdated(tbFotos.getSelectedRow(), 1);
77          lstCreditos.requestFocus();
78      }
79  }